home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / SYS / s / DO5-Pack_kat.rexx < prev    next >
OS/2 REXX Batch file  |  1996-09-26  |  3KB  |  140 lines

  1. /**************************************************************************
  2.   $VER: DO5-Pack_kat.rexx 1.0 (19.12.95) Georges 'Melkor' Goncalves
  3.   Written by Georges 'Melkor' Goncalves and Eric Sauvageau.
  4.  
  5.   ARexx Script for DOpus 5 to crunch selected files via XPKatana.
  6.  
  7.   Usage:
  8.  
  9.   <ARexx>   DO5-Pack_kat.rexx <packer>
  10.  
  11.   Note: XPKatana is copyright © Eric Sauvageau and it does NOT belong to the
  12.         DOpus5 distribution. It's ShareWare.
  13. ***************************************************************************/
  14.  
  15. Options Results
  16. Options FailAt 25
  17.  
  18. /* Adjust this as needed */
  19. XPKATANA_PATH = "SYS:Utilities/XPKatana"
  20.  
  21.  
  22. Parse Arg packer
  23.  
  24. /* Should check if DOpus is really there */
  25.  
  26.   If ~Show('p',"DOPUS.1") Then Do
  27.      Say "This script should be used with DirectoryOpus running!"
  28.      Exit 20
  29.   End
  30.  
  31.  
  32. /* We have to actually verify is XPKatana is running.          */
  33.   If ~SHOW('p',"KATANA") Then Do
  34.  
  35. /* IF XPKatana is not already running, start it !                     */
  36.       started = 1
  37.       Address Command "run <>NIL: "||XPKATANA_PATH||" ICONIFY"
  38.       Address Command "WaitForPort KATANA"
  39.   End
  40.  
  41.  
  42. address 'DOPUS.1'
  43.  
  44. If packer = "" Then Do
  45.   dopus request '"You need to supply a packer as the argument!" Damn!'
  46.  
  47.    Address 'KATANA'
  48.    If started = 1 Then Do
  49.       Quit
  50.    End
  51.  
  52.   Exit 0
  53. End
  54.  
  55. lister query source /* Is there any source lister ? */
  56. SRCHandle=RESULT
  57.  
  58. if SRCHandle="RESULT" Then Do
  59.   dopus request '"You need a source lister to use this script :-)" Damn!'
  60.  
  61.   Address 'KATANA'
  62.   If started = 1 Then Do
  63.      Quit
  64.   End
  65.  
  66.   Exit 0
  67. end
  68.  
  69. lister query SRCHandle selfiles  /* Returns the name of selected files separated by space */
  70. Files=RESULT
  71.  
  72. lister query SRCHandle numselfiles ; selected = result
  73.  
  74. if selected=0 Then Do
  75.   dopus request '"No source file(s) selected!" Damn!'
  76.  
  77.   Address 'KATANA'
  78.   If started = 1 Then Do
  79.      Quit
  80.   End
  81.  
  82.   Exit 0
  83. end
  84.  
  85. lister set SRChandle busy 1  /* Busy the lister */
  86.  
  87. lister query SRChandle path  /* Returns the source path */
  88. Path = RESULT
  89.  
  90.  
  91. /* Talk to XPKatana */
  92. Address 'KATANA'
  93. GetFlag NOPROGRESS ; oldflag = result
  94. SetFlags NOPROGRESS 1
  95.  
  96. SetPacker packer 100 ; error = result
  97. If error ~= "OK" Then Do
  98.  
  99.   Address 'DOPUS.1'
  100.   dopus request '"Invalid packer supplied!" Damn!'
  101.   Signal ExitScript
  102. End
  103.  
  104.  
  105. Do Forever
  106.    Parse Var Files afile Files   /* Pull the first file and keep the remain */
  107.    If afile == '' Then Leave
  108.    completefile = path||Strip(afile,'B','"')   /* Add path, strip "" */
  109.  
  110.    SetSource completefile
  111.    Pack ; error = result 
  112.    /* Un-select the processed file */
  113.    Address 'DOPUS.1' 
  114.    If error = 'ABORT' Then Do
  115.       dopus request '"Error while packing "'||afile||'"!" Damn!'
  116.    End
  117.  
  118.    lister select SRCHandle afile off
  119.  
  120.    Address 'KATANA' /* Switch back to the Katana port */
  121. End
  122.  
  123.  
  124. ExitScript:
  125.  
  126. /* Close XPKatana if we started it */
  127. Address 'KATANA'
  128. If started = 1 Then Do
  129.    Quit
  130. End
  131. Else Do
  132.    SetFlags NOPROGRESS oldflag
  133. End
  134.  
  135.  
  136. Address 'DOPUS.1'
  137.  
  138. lister set SRCHandle busy 0              /* Un-busy the lister */
  139. lister refresh SRCHandle
  140.